Sharing resources for networked computers, such as data storage facilities, can increase efficiency by reducing maintenance and operating costs, allowing flexibility with respect to individual resource usage, and simplifying resource management. With respect to shared storage, the benefits include data consolidation, universal access to data, ease of storage management, and support for live migration of virtual machines (VMs) for virtualized environments.
An important aspect of sharing resources is Quality of Service (QoS), which refers to resource management methodologies whereby the shared resources are allocated among a plurality of users or clients according to a policy. The policy may guarantee a minimum and/or maximum level of service (e.g., as a percentage of shared resource). It is also common to distribute services according to assigned resource “shares,” which are alternatively referred to in literature as “weights,” so that each client is provided a level of service that compares to its peers at the same ratio as the assigned shares. A combination of these approaches is possible for a particular policy. Thus, QoS suggests an ability to evenly distribute services or arbitrarily assign priority to selected applications, users, or data flows to maintain control over workload performance in shared storage environments.